package com.powergisol.gis.service;

import com.powergisol.gis.entity.TabLayer;
import com.powergisol.gis.entity.TabScene;
import com.powergisol.gis.entity.TabTree;
import com.powergisol.gis.util.Result;
import com.powergisol.gis.vo.CopyTreeVo;
import com.powergisol.gis.vo.TreeSortDataVO;
import com.powergisol.gis.vo.TreeSortVO;

import java.util.List;
import java.util.Map;

public interface TabSceneService {
    /**
     * 用户场景列表
     * @param tabScene
     * @return
     */
    List<Map<String,Object>> listScene(TabScene tabScene);
    /**
     * 增加场景
     * @param tabScene
     * @return
     */
    Result saveScene(TabScene tabScene, Integer userId);

    /**
     * 修改场景
     */
    Result upScene(TabScene tabScene, Integer userId);

    /**
     * 用户树列表
     * @param sceneId 为空则查询所有该用户对应的场景树，否则对应的场景树
     * @param userId
     * @return
     */
    Result treeScene(Integer sceneId, Integer userId);

    Result sceneDetail(Integer sceneId);

    Result copyScene(CopyTreeVo tabSceneVo);

    /**
     * 删除场景
     * @param id 树id
     * @param userId
     * @return
     */
    Result delScene(Integer id, Integer sceneId, Integer userId);

    /**
     * 保存树信息
     * @param tabTree
     * @return
     */
    Result saveTree(TabTree tabTree);

    /**
     * 修改树信息
     * @param tabTree
     * @return
     */
    Result upTree(TabTree tabTree);

    /**
     * 保存图层
     * @param tabLayer
     * @return
     */
    Result saveLayer(TabLayer tabLayer);

    Result getSceneById(Integer id);

    Result deleteScene(Integer sceneId);

    void updateSort(List<TreeSortVO> sortVOList);

    void updateTreeSort(TreeSortDataVO treeSortDataVO);
}
